package com.vip8.recorder.service.db.model;

import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * recorder_info
 * @author 
 */
@Data
public class RecorderInfo implements Serializable {
    private Long id;

    /**
     * 创建时间
     */
    private Date gmtCreate;

    /**
     * 修改时间
     */
    private Date gmtModified;

    /**
     * 用户id
     */
    private String employeeId;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 姓名
     */
    private String empName;

    /**
     * 用户状态
     */
    private Byte status;

    /**
     * 视频hash
     */
    private String videoId;

    /**
     * 视频标题
     */
    private String videoTitle;

    /**
     * 视频大小
     */
    private Long videoLength;

    /**
     * 视频时长
     */
    private Long videoDuration;

    /**
     * 视频开始时间
     */
    private Date startTime;

    /**
     * 视频结束时间
     */
    private Date endTime;

    /**
     * 城市
     */
    private String startCity;

    /**
     * 视频结束城市
     */
    private String endCity;

    /**
     * 开始坐标
     */
    private String startPoint;

    /**
     * 结束坐标
     */
    private String endPoint;

    /**
     * 开始地址
     */
    private String startAddress;

    /**
     * 结束地址
     */
    private String endAddress;

    /**
     * 视频fileKey
     */
    private String videoFileKey;

    /**
     * 视频url
     */
    private String videoUrl;

    /**
     * 扩展字段
     */
    private Object attributes;

    /**
     * 封面fileKey
     */
    private String coverFileKey;

    /**
     * 场景
     */
    private String scene;

    /**
     * 合作方
     */
    private String partner;

    /**
     * 供应商
     */
    private String supplier;

    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        RecorderInfo other = (RecorderInfo) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getGmtCreate() == null ? other.getGmtCreate() == null : this.getGmtCreate().equals(other.getGmtCreate()))
            && (this.getGmtModified() == null ? other.getGmtModified() == null : this.getGmtModified().equals(other.getGmtModified()))
            && (this.getEmployeeId() == null ? other.getEmployeeId() == null : this.getEmployeeId().equals(other.getEmployeeId()))
            && (this.getPhone() == null ? other.getPhone() == null : this.getPhone().equals(other.getPhone()))
            && (this.getEmpName() == null ? other.getEmpName() == null : this.getEmpName().equals(other.getEmpName()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
            && (this.getVideoId() == null ? other.getVideoId() == null : this.getVideoId().equals(other.getVideoId()))
            && (this.getVideoTitle() == null ? other.getVideoTitle() == null : this.getVideoTitle().equals(other.getVideoTitle()))
            && (this.getVideoLength() == null ? other.getVideoLength() == null : this.getVideoLength().equals(other.getVideoLength()))
            && (this.getVideoDuration() == null ? other.getVideoDuration() == null : this.getVideoDuration().equals(other.getVideoDuration()))
            && (this.getStartTime() == null ? other.getStartTime() == null : this.getStartTime().equals(other.getStartTime()))
            && (this.getEndTime() == null ? other.getEndTime() == null : this.getEndTime().equals(other.getEndTime()))
            && (this.getStartCity() == null ? other.getStartCity() == null : this.getStartCity().equals(other.getStartCity()))
            && (this.getEndCity() == null ? other.getEndCity() == null : this.getEndCity().equals(other.getEndCity()))
            && (this.getStartPoint() == null ? other.getStartPoint() == null : this.getStartPoint().equals(other.getStartPoint()))
            && (this.getEndPoint() == null ? other.getEndPoint() == null : this.getEndPoint().equals(other.getEndPoint()))
            && (this.getStartAddress() == null ? other.getStartAddress() == null : this.getStartAddress().equals(other.getStartAddress()))
            && (this.getEndAddress() == null ? other.getEndAddress() == null : this.getEndAddress().equals(other.getEndAddress()))
            && (this.getVideoFileKey() == null ? other.getVideoFileKey() == null : this.getVideoFileKey().equals(other.getVideoFileKey()))
            && (this.getVideoUrl() == null ? other.getVideoUrl() == null : this.getVideoUrl().equals(other.getVideoUrl()))
            && (this.getAttributes() == null ? other.getAttributes() == null : this.getAttributes().equals(other.getAttributes()))
            && (this.getCoverFileKey() == null ? other.getCoverFileKey() == null : this.getCoverFileKey().equals(other.getCoverFileKey()))
            && (this.getScene() == null ? other.getScene() == null : this.getScene().equals(other.getScene()))
            && (this.getPartner() == null ? other.getPartner() == null : this.getPartner().equals(other.getPartner()))
            && (this.getSupplier() == null ? other.getSupplier() == null : this.getSupplier().equals(other.getSupplier()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getGmtCreate() == null) ? 0 : getGmtCreate().hashCode());
        result = prime * result + ((getGmtModified() == null) ? 0 : getGmtModified().hashCode());
        result = prime * result + ((getEmployeeId() == null) ? 0 : getEmployeeId().hashCode());
        result = prime * result + ((getPhone() == null) ? 0 : getPhone().hashCode());
        result = prime * result + ((getEmpName() == null) ? 0 : getEmpName().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getVideoId() == null) ? 0 : getVideoId().hashCode());
        result = prime * result + ((getVideoTitle() == null) ? 0 : getVideoTitle().hashCode());
        result = prime * result + ((getVideoLength() == null) ? 0 : getVideoLength().hashCode());
        result = prime * result + ((getVideoDuration() == null) ? 0 : getVideoDuration().hashCode());
        result = prime * result + ((getStartTime() == null) ? 0 : getStartTime().hashCode());
        result = prime * result + ((getEndTime() == null) ? 0 : getEndTime().hashCode());
        result = prime * result + ((getStartCity() == null) ? 0 : getStartCity().hashCode());
        result = prime * result + ((getEndCity() == null) ? 0 : getEndCity().hashCode());
        result = prime * result + ((getStartPoint() == null) ? 0 : getStartPoint().hashCode());
        result = prime * result + ((getEndPoint() == null) ? 0 : getEndPoint().hashCode());
        result = prime * result + ((getStartAddress() == null) ? 0 : getStartAddress().hashCode());
        result = prime * result + ((getEndAddress() == null) ? 0 : getEndAddress().hashCode());
        result = prime * result + ((getVideoFileKey() == null) ? 0 : getVideoFileKey().hashCode());
        result = prime * result + ((getVideoUrl() == null) ? 0 : getVideoUrl().hashCode());
        result = prime * result + ((getAttributes() == null) ? 0 : getAttributes().hashCode());
        result = prime * result + ((getCoverFileKey() == null) ? 0 : getCoverFileKey().hashCode());
        result = prime * result + ((getScene() == null) ? 0 : getScene().hashCode());
        result = prime * result + ((getPartner() == null) ? 0 : getPartner().hashCode());
        result = prime * result + ((getSupplier() == null) ? 0 : getSupplier().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", gmtCreate=").append(gmtCreate);
        sb.append(", gmtModified=").append(gmtModified);
        sb.append(", employeeId=").append(employeeId);
        sb.append(", phone=").append(phone);
        sb.append(", empName=").append(empName);
        sb.append(", status=").append(status);
        sb.append(", videoId=").append(videoId);
        sb.append(", videoTitle=").append(videoTitle);
        sb.append(", videoLength=").append(videoLength);
        sb.append(", videoDuration=").append(videoDuration);
        sb.append(", startTime=").append(startTime);
        sb.append(", endTime=").append(endTime);
        sb.append(", startCity=").append(startCity);
        sb.append(", endCity=").append(endCity);
        sb.append(", startPoint=").append(startPoint);
        sb.append(", endPoint=").append(endPoint);
        sb.append(", startAddress=").append(startAddress);
        sb.append(", endAddress=").append(endAddress);
        sb.append(", videoFileKey=").append(videoFileKey);
        sb.append(", videoUrl=").append(videoUrl);
        sb.append(", attributes=").append(attributes);
        sb.append(", coverFileKey=").append(coverFileKey);
        sb.append(", scene=").append(scene);
        sb.append(", partner=").append(partner);
        sb.append(", supplier=").append(supplier);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}